110 RANDOMIZE
120 CALL CLEAR
130 GOSUB 1090
140 CALL CLEAR
150 DIFF=1
160 CALL SCREEN(16)
170 PRINT "LEVEL: ";DIFF;" SCORE: ";SCORE
180 DIR=1
190 PR=0
200 FOR I=2 TO 22 STEP 4
210 CALL HCHAR(I,1,96,32)
220 IF I>20 THEN 280
230 R=INT(RND*26+4)+DIR
240 IF(SGN(R-PR)<>DIR)THEN 230
250 CALL VCHAR(I,R,104,4)
260 PR=R
270 DIR=-DIR
280 NEXT I
290 COL=2
300 ROW=1
310 CHAR=112
320 OLDCOL=1
330 OLDROW=1
340 OLDCHAR=32
350 DIR=1
360 CALL HCHAR(OLDROW,OLDCOL,32)
370 IF RND>DIFF/10 THEN 440
380 R=INT(4*RND)*4+6
390 C=INT(RND*32)+1
400 CALL GCHAR(R,C,A)
410 IF A=104 THEN 440
420 CALL HCHAR(R,C,120)
430 CALL SOUND(100,-1,4)
440 CALL HCHAR(ROW,COL,CHAR-2*(DIR<0))
450 CALL SOUND(-5,-7,4)
460 IF ROW>20 THEN 1000
470 OLDCOL=COL
480 OLDROW=ROW
490 COL=COL+DIR
500 IF(COL>0)*(COL<33)THEN 550
510 COL=COL-DIR
520 ROW=ROW+4
530 DIR=-DIR
540 GOTO 360
550 CALL GCHAR(ROW+1,COL,CHECK)
560 CALL KEY(0,K,ST)
570 IF ST THEN 650
580 IF CHECK=120 THEN 780
590 IF CHECK<>104 THEN 620
600 DIR=-DIR
610 ROW=ROW+4
620 CHAR=225-CHAR
630 SCORE=SCORE+.5
640 GOTO 360
650 IF CHECK<>120 THEN 1040
660 CALL HCHAR(OLDROW,OLDCOL,32)
670 CALL HCHAR(ROW-1,COL,112-2*(DIR<0))
680 CALL SOUND(5,250,10)
690 CALL SOUND(5,200,10)
700 CALL SOUND(5,300,10)
710 CALL HCHAR(ROW-1,COL,128)
720 SCORE=SCORE+25
730 CALL SOUND(-500,500,1,510,10,520,20)
740 CALL SOUND(1,110,30)
750 CALL HCHAR(ROW-1,COL,32)
760 COL=COL+DIR
770 GOTO 500
780 CALL KEY(0,K,ST)
790 IF ST THEN 590
800 CALL HCHAR(OLDROW,OLDCOL,32)
810 CALL HCHAR(ROW,COL,116)
820 FOR I=1000 TO 1020
830 CALL SOUND(-1,I,0)
840 NEXT I
850 CALL HCHAR(ROW,COL,32)
860 CALL HCHAR(ROW+1,COL,121)
870 CALL SOUND(1000,-2,4,110,4)
880 CALL SOUND(1,110,1)
890 CALL CLEAR
900 CALL SCREEN(12)
910 PRINT "YOUR SCORE WAS:";INT(SCORE)
920 PRINT :"PLAY AGAIN? (Y/N):";
930 CALL KEY(0,K,ST)
940 IF(K<>ASC("Y"))*(K<>ASC("N"))THEN 930
950 PRINT CHR$(K)
960 IF K=ASC("N")THEN 990
970 SCORE=0
980 GOTO 140
990 STOP
1000 DIFF=DIFF+1
1010 SCORE=SCORE+50
1020 CALL CLEAR
1030 GOTO 170
1040 FOR I=150 TO 140 STEP-1
1050 CALL SOUND(-1,I,1)
1060 NEXT I
1070 SCORE=SCORE-25
1080 GOTO 590
1090 REM  
1100 FOR I=8 TO 19
1110 READ A,C
1120 CALL HCHAR(A,I,C)
1130 NEXT I
1140 DATA 13,74,12,85,11,77,10,80,11,73,12,78,13,71,13,32,13,74,13,65,13,67,13,75
1150 PRINT "PRESS ANY KEY TO JUMP."
1160 READ A
1170 IF A=-1 THEN 1320
1180 READ A$
1190 CALL CHAR(A,A$)
1200 GOTO 1160
1210 DATA 96,FF422418182442FF
1220 DATA 104,7E427E427E427E42
1230 DATA 112,1028302478B82442
1240 DATA 113,102830A27C782448
1250 DATA 114,102818483C3A4884
1260 DATA 115,1028184A3C3C4824
1270 DATA 116,001C5D2A1C1C1422
1280 DATA 120,81814222242400C3
1290 DATA 121,BDBD5A22242400C3
1300 DATA 128,0077147741770000
1310 DATA -1
1320 FOR I=9 TO 13
1330 READ A
1340 CALL COLOR(I,A,1)
1350 NEXT I
1360 DATA 6,4,14,10,12
1370 PRINT : :"PRESS ANY KEY TO START.";
1380 CALL KEY(0,K,S)
1390 IF S<1 THEN 1380
1400 RETURN
1410 END
